<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>let&const</title>
</head>
<body>

</body>
<script>

    var num = 10;




    /**
     *   块级作用域
     *      es5  没有块级作用域，只要存在引用，变量就不会销毁
     *      es6 let 存在块级作用域 ,如果引用存在于作用域之外，变量就没法使用
     * */

    function let_test1(){
        for (var i = 0; i < 5; i++) {
            console.log(i);
        }

        console.log(i);


        for (let j = 0; j < 5; j++) {
            console.log(j);
        }

        console.log(j);
    }

    /**
     *   let   定义变量
     *   const 定义常量  第一次被赋值之后，就不能修改
     * */
    function let_test2(){
         let num1= '78';

         num1=89;
         console.log(89)

        const num2 =45;
        // num2=78;
    }

    let_test2();

    /**
     *  let
     *     单值
     *  const 的常用场景
     *     1. 不是需要再次修改的单值---单值常量
     *     2. 不被通过 new 初始化
     * */

   function let_test3(){
        const employee={
            id:3,
            name:'Martin',
            age:37
        }

        const employee2={
            id:3,
            name:'Martin',
            age:37
        }
        employee.age =21;
        employee.name='Tea';

     // new
     // employee ={}; 字面量  相当于 new
       // employee =employee2;

    }





</script>

</html>